Collecting and presenting data including links from communications sent to or from a user

ABSTRACT

Information is presented to a user of a user device by a method including: collecting data relating to communications sent to or from the user, including to or from a first person, each communication including a link of a plurality of links; generating personal profiles from the collected data, the profiles comprising a first personal profile of the first person and including a first link of the plurality of links; and presenting the first personal profile to the user, comprising displaying the first link in a user interface on the user device.

RELATED APPLICATIONS

The present application claims priority to U.S. Provisional ApplicationSer. No. 61/261,680, filed Nov. 16, 2009, entitled “METHOD AND SYSTEMFOR COLLECTING AND PRESENTING HISTORICAL COMMUNICATION DATA,” byJacobson et al., the entire contents of which application isincorporated by reference as if fully set forth herein.

The present application is related to U.S. patent application Ser. No.12/180,495, filed Jul. 25, 2008 and published on Jan. 29, 2009 as U.S.Pat. App. Pub. No. 2009/0031245, the disclosure of which is incorporatedherein by reference.

BACKGROUND

Electronic communications between persons for both business and personaluse have increased substantially in recent years. In addition to thenumber of communications increasing, the number of availablecommunication mediums has also increased. In addition to e-mailcommunications and telephone communications, additional forms ofcommunication have become common in recent years, including instantmessaging, social network messaging and commenting, message boardposting, text messaging, and Voice Over Internet Protocolcommunications.

These additional forms of communication have led to individualsexchanging communications with more people than ever before, which leadsto an even higher increase in the number of communications sent andreceived by an individual.

SUMMARY OF THE DESCRIPTION

The present disclosure relates to collecting and presenting datarelating to communications sent to or from a user, the communicationsincluding one or more links displayed to the user. Some embodiments aresummarized in this section.

In a first aspect, a computer implemented method for presentinginformation related to historical communication and personal data caninclude collecting historical communication data and personal datarelating to a portion of a plurality of communications, a sender of oneor more of the communications or one or more recipients of thecommunications. The method can further include depositing the collecteddata into a repository of historical communication data and personaldata. The method can further include presenting one or more items in therepository, in response to user behavior selected from the groupcomprising opening a communication, viewing a communication, reading acommunication, writing a communication, performing a search, selecting aperson's name, selecting a communication summary, and selecting anattribute associated with the one or more items.

The method can further include querying one or more sources ofinformation to derive the historical communication data and the personaldata. The method can further include requesting information from asender of a communication or one or more recipients of thecommunication. The method can further include displaying the one or moreitems in an additional portion of a user interface (e.g., in a panel)within an e-mail client, web browser, or instant message window. Themethod can further include displaying the one or more items integratedwith a body of the communication using one or more display methodsselected from the group comprising highlighting, underlining, addinghyper links, adding text, adding images, adding video, and addingattachments.

The method can further include tracking mouse movements, mouselocations, keyboard strokes, mouse clicks, or active windows in order todetermine if the user has made an implicit request to view one or moreitems in the repository. The method can further include sharing some orall of the data in the repository among a network of participants. Themethod can further include sharing different amounts of data from therepository with each participant based on preference settings. Themethod can further include allowing a user to select one or more of theone or more presented items and automatically generating a communicationin response to the user selection.

In one embodiment, information is presented to a user of a user deviceby a method including: collecting data relating to communications sentto or from the user, including to or from a first person, eachcommunication including a link of a plurality of links; generatingpersonal profiles from the collected data, the profiles comprising afirst personal profile of the first person and including a first link ofthe plurality of links; and presenting the first personal profile to theuser, comprising displaying the first link in a user interface on theuser device.

The disclosure includes methods and apparatuses which perform thesemethods, including data processing systems which perform these methods,and computer readable media containing instructions which when executedon data processing systems cause the systems to perform these methods.

Other features will be apparent from the accompanying drawings and fromthe detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings in which like referencesindicate similar elements.

FIG. 1A shows an example e-mail client with a person profile side bar.

FIG. 1B shows an example of a person profile.

FIG. 1C shows an example of a conversation thread profile.

FIG. 1D shows a portion of an example person profile that can be used torequest contact information.

FIG. 1E shows a portion of an example person profile that can be used topost shared notes.

FIG. 2 is a block diagram of an example communication delivery system.

FIG. 3 is a flow diagram of an example process 300 for collecting andpresenting historical communication and personal data.

FIG. 4 shows an example of a user typing “frank” in a search box.

FIG. 5 shows an example of a user selecting a profile of “Frank Cort”from a “People” panel.

FIG. 6 shows an example of the display of further information about alink in a dynamic panel when a user causes a cursor to hover over thelink.

FIG. 7 shows an example of the display of a menu panel, when the userright clicks a link, to allow the user to select an operation.

DETAILED DESCRIPTION

The following description and drawings are illustrative and are not tobe construed as limiting. Numerous specific details are described toprovide a thorough understanding. However, in certain instances, wellknown or conventional details are not described in order to avoidobscuring the description. References to one or an embodiment in thepresent disclosure are not necessarily references to the sameembodiment; and, such references mean at least one.

FIG. 1A shows an example system 100 for displaying a personal profilecontaining information about communications to, from, and involving anindividual. The system 100 includes an e-mail client 102 which caninclude an inbox viewing panel 104 and an e-mail viewing panel 106. Thee-mail client 102 can be a standard stand alone e-mail client such asMicrosoft Outlook or Eudora. In an alternate implementation the emailclient 102 can be a web based e-mail client such as Yahoo! mail or Gmailthat is viewed using a web browser. The e-mail client 102 can allow auser to view a list of e-mails in the inbox viewing panel 104. The usercan select an e-mail in the inbox viewing panel 104 causing the e-mailclient 102 to display the selected e-mail in the e-mail viewing panel106.

In some implementations, instead of an e-mail client, the system 100 caninclude an instant messaging client, a social network client, a textmessage client, or another communication viewing client. It is to beunderstood that while portions of this description describe systems andmethods involving e-mail communications, these same systems and methodscan be implemented using other forms of communication, including instantmessages, phone calls, text messages, internet message board postings,social network messages or comments, or voice over IP communications.

The e-mail client 102 also includes a personal profile 108. In theexample depicted, the personal profile 108 is displayed as an additionalpanel within the e-mail client 102 positioned to the right of the inboxviewing panel 104 and the e-mail viewing panel 106. This additionalpanel is sometimes referred to as a side bar. In some implementations,the personal profile 108 can be located at the top, bottom, left side,or any other location within the e-mail client 102. In still someimplementations, the personal profile 108 can be displayed in a standalone window, in a pop-up bubble displayed over a portion of the e-mailclient 102, or integrated as part of one of the other viewing panelsdisplayed by the e-mail client 102. For example, a pop up bubblecontaining a personal profile 108 can be displayed when an e-mail isselected in the inbox viewing panel 104, when an e-mail address orportion of text in the e-mail viewing panel 106 is selected, or when amouse icon is moved over an e-mail address, name, icon, or portion oftext. In another example, information can be integrated as part of thebody of an e-mail, such as inserting a picture next to a person's namein the body of an e-mail, or inserting a person's name next to a phonenumber in an e-mail or attachment.

The personal profile 108 can contain information relating to a sender ofan e-mail, a recipient of an e-mail, the body of an e-mail, anattachment to an e-mail, or a person or topic mentioned in an e-mail. Inalternate implementations, the personal profile 108 can containinformation related to a sender, recipient, body, attachment or topic ofanother communication medium such as an instant message, a phone call, atext message, an internet message board, a social network message orcomment, or a voice over IP communication. The user can implicitlyrequest information to be displayed in the personal profile 108 byselecting an e-mail in the inbox viewing panel 104 or selecting textwithin a header or body of an e-mail in the e-mail viewing panel 106. Insome implementations, the profile can include additional information(e.g., derived information such as search results derived from a topicmentioned in a communication).

In some implementations, the person profile 108 can display informationabout an entity other than a person. For example, a communication may bereceived from an automated system, such as from a travel website,on-line retailer, an advertising service, or a mailing list. The personprofile 108 can display information related to the sender of thecommunication. For example, if the communication received has been sentfrom a travel website, information related to the travel website, orother communications from the travel website can be displayed. Inanother example, if the communication received has been sent from amailing list, information related to the mailing list, or othercommunications received from the mailing list can be displayed. As yetanother example, if the communication received has been sent from abusiness entity, information about the business entity (e.g., address,telephone number, contact person name) can be included in the personalprofile.

For example, the user can select an e-mail 110 in the inbox viewingpanel 104 causing the personal profile 108 to display informationrelated to a sender 112 of the e-mail 110. In another example, the usercan select an e-mail address 114 or name of a recipient of the e-mail110 in order to display information related to the recipient in thepersonal profile 108. In another example, the user can select anattachment to the e-mail 110 in order to display information related tothe attachment in the personal profile 108. In yet another example, theuser can select the name of a person, a user name of a person, or aparticular topic listed in a header, a body, or an attachment of thee-mail 110 in order to display information related to the person ortopic in the personal profile 108.

In some implementations, the system 100 can determine if the user hasmade an implicit request to view information in the personal profile 108by tracking, for example, user input of the form of mouse movements,mouse locations, keyboard strokes, mouse clicks, or active windows.Implicit requests to view information in the person profile 108 caninclude opening, viewing, reading or writing an e-mail or othercommunication medium. For example, if the user starts to compose aninstant message, the personal profile 108 can display informationrelated to the recipient of the instant message. In another example, ifthe user views a social network profile, either within the e-mail client102 or in a separate web browser, the personal profile 108 can displayinformation related to a person associated with the social networkprofile.

In some implementations, the user can make a specific request to viewinformation in the personal profile 108 by performing a search orclicking on a person's name.

In some implementations, the system 100 can be linked to a phone (e.g.,voice over IP phone) used by the user. For example, the system 100 caninclude means for detecting when the user makes or receives a phone callor text message using the phone and display information related to arecipient or initiator of the phone call or text message in the personalprofile 108.

In the example depicted in FIG. 1A, the user has selected the e-mail 110in the inbox viewing panel 104 and header information and a portion ofthe body of the e-mail 110 is displayed in the e-mail viewing panel 106.The e-mail 110 was received from the sender 112. The system 100 hasdetermined that the user has made an implicit request to viewinformation related to the sender 112 by selecting the e-mail 110. Inresponse to this implicit request, the system 100 displays in the personprofile 108 information related to the sender 112.

In the example, the information displayed in the person profile 108includes an e-mail address 116, a phone number 118, communicationstatistics 120, a contact network 122, a conversation list 124, and afiles exchanged list 126. In some implementations, the person profile108 can display additional contact information such as name, screennames, social network profile names, social network profile URLs,physical addresses, website URLs, additional e-mail addresses, oradditional telephone numbers.

In the example, the communication statistics 120 include the number ofe-mails received from the sender 112 and the number of e-mails sent tothe sender 112. In some implementations, additional communicationstatistics 120 can be displayed, including times of communications,dates of communications, types of communications, volume ofcommunications, length of communications, or speed of responses. Forexample, a statistic for the average amount of time it takes the sender112 to respond to e-mails sent by the user can be displayed. In anotherexample, the times of day that the sender 112 is most likely to respondto an e-mail or other form of communication can be displayed as acommunication statistic 120. In another example, a statistic can bedisplayed that lists the percentage of communications between the userand the sender 112 that occur using a telephone, the percentage ofcommunications that occur using instant messaging, the percentage ofcommunications that occur using e-mails, or the percentage ofcommunications that occur using a social network website as a percentageof all communications between the user and the sender 112. In anotherexample, the number of communications sent or received on which thesender 112 has been copied can be displayed as a communication statistic120. In another example, the number of communications received by theuser on which the sender 112 has also been listed as a recipient can bedisplayed as a communication statistic 120.

In some implementations, the communication statistics 120 that aredisplayed can be chosen by the user. The user can choose to have adefault set of communication statistics displayed, or the user canselect which individual communication statistics 120 are to bedisplayed. The user can choose to have the same set of communicationstatistics 120 displayed for each person profile 108 or the user canchoose to have a different set of communication statistics 120 displayeddepending on which person or topic the currently displayed personprofile 108 is associated with.

The contact network 122 displayed in the person profile 108 shows a listof contacts 128 that are associated with the sender 112. In the exampledepicted, the contacts 128 are shown as e-mail addresses. In someimplementations, the contacts 128 can be listed as names, screen names,nick names, employee numbers, social network profile names, socialnetwork profile URLs, telephone numbers, website URLs, or anycombination of these.

In some implementations, details about a contact 128 can be displayedadjacent to the contact 128 in the contact network 122. These detailscan include time since last communication, last form of communication,frequency of communications, total numbers of communications, or otherrelated data.

The contacts 128 listed in the contact network 122 are contacts that areassociated with the sender 112. The contacts 128 can include recipientsof communications from the sender 112, recipients of communications ofwhich the sender 112 is also a recipient, individuals named in a body orheader of a communication with the sender 112, or individuals named in adocument that is attached to a communication with the sender 112. Forexample, a person who was copied on an e-mail between the user and thesender 112 can be listed as a contact 128 in the contact network 122. Inthe example depicted the header of the e-mail 110 as shown in the e-mailviewing panel 106 lists all.houston@enron.com as a recipient of thee-mail 110. The contact network 122 lists all.houston@enron.com as acontact 128 of the sender 112. In another example, if the user receivesan e-mail from the sender 112 with the subject line “Matt Smith'sbirthday party”, Matt Smith can be listed as a contact 128 in thecontact network 122 even if Matt Smith has never been included in orbeen the recipient of any communications between the user and the sender112. In another example, if the user posts a comment to a social networkprofile page belonging to the sender 112 and a person named Eric Johnsonhas also posted a comment to the social network profile page, or islisted as a friend of the sender 112 on the social network profile page,Eric Johnson can be listed as a contact 128 in the contact network 122.

In some implementations, the contacts 128 listed in the contact network122 can be collected from sources other than communications between theuser and the sender 112. In one implementation, the sender 112 canprovide a list of contacts to the user to include in the contact network122 for the sender 112. The sender 112 can provide the list of contactsto the user through sharing the list of contacts on a shared network, orby sending a communication to the user with, for example, the list ofcontacts in a body of the communication or in an attachment to thecommunication.

In some implementations, the system 100 can collect data from outsidesources in order to determine contacts 128 to be listed in the contactnetwork 122. The system 100 can query various sources to extractinformation on contacts that can be associated with the sender 112 andlisted in the contact network 122. Sources of information that can bequeried to derive contacts associated with the sender 112 can includeweb search engines, people search engines, social networks, personal webpages, telephone directories, scanned business card data or companywebsite profiles.

For example, the system 100 can perform a search of a social networkbased on the sender 112's name, e-mail address, screen names or otherinformation about the sender 112. The system can then identify a profilepage on the social network belonging to the sender 112. Any contactsthat are publicly listed on the social network profile page can belisted in the contact network 122 of the sender 112 even if the user hasnever communicated with the sender 112 using the social network orviewed the profile page of the sender 112 on this social network. Insome implementations, the system 100 can access and extract contactslisted on a private social network profile page belonging to the sender112 if the user has proper access information or authorization to viewthe private social network profile page of the sender 112.

In another example, the system 100 can use a search engine to perform asearch based on the sender 112's name, e-mail address, screen names orother information about the sender 112 in order to identify web pagesthat may contain contacts that can be associated with the sender 112.For example, the system 100 can use a search engine to perform a searchbased on the sender 112's name. If one of the search results returned isfor a blog written by a person named Mark Adams that mentions the sender112, then Mark Adams can be listed as a contact 128 in the contactnetwork 122. In another example, the system 100 can determine that thesender 112 works for the same company as a person who has sent adifferent communication to the user. This person can then be listed as acontact 128 of the sender 112. In some implementations, the system 100can collect data using a peer to peer network.

Information that can be used to collect information about contacts 128or other information displayed in the personal profile 108 can includee-mail addresses, names, screen names, social network profile names,phone numbers, personal website URLs, social network profile URLs, orphysical addresses.

The contacts 128 displayed in the contact network 122 can be listed inorder based on a ranking system. Criteria used to rank the contacts 128can include total volume of communication, volume of communication overa period of time, length of communications, importance level ofcommunications, types of communications, contents of communications,time of communications; methods by which the contacts 128 weredetermined to be associated with the sender 112, or any combination ofthese. For example, the contacts 128 can be ranked based on the totalnumber of communications between the user and the sender 112 for which acontact is also a recipient of the communication. In another example,the contacts 128 can be ranked based on the number of communicationsbetween the user and the sender 112 for which a contact is also arecipient of the communication over the course of the last three weeks.In another example, the contacts 128 can be ranked based on the numberof communications between the user and a contact for which the sender112 is also a recipient of the communication.

In another example, the contacts 128 can be ranked based on the lengthof communications between the user and the sender 112 for which acontact is also a recipient of the communication with longercommunications being ranked higher than shorter communications. Inanother example, contacts that are listed on communications flagged asurgent or important can be ranked higher than other contacts. In anotherexample, the user can choose to have contacts who mainly communicatewith the user or sender 112 using e-mail ranked higher than contacts whomainly communicate with the user or sender 112 using instant message orsocial networks. In another example, the system 100 can use the contentsof communications involving each contact 128 and the sender 112 todetermine if communications involving the contact 128 and the sender 112are primarily business related or social related communications. Thesystem 100 can then give a higher ranking to contacts associated withbusiness communications than contacts associated with socialcommunications.

In another example, contacts who are associated with more recentcommunications between the user and the sender 112 can be ranked higherthan contacts associated with older communications between the user andthe sender 112. In another example, contacts that have been determinedto be associated with the sender 112 based on e-mail communication canbe ranked higher than contacts that have been determined to beassociated with the sender 112 based on web searches.

In some implementations, each contact 128 listed in the contact network122 can be a link to more information about the contact 128. Forexample, if a contact 128 is clicked on, selected, or interacted with bythe user, a person profile containing information about the selectedcontact 128 can be displayed. In another example, the user can cause amouse cursor (or other selection tool) to hover over a contact 128. Thiscan cause a pop-up bubble containing additional information about thecontact 128 to be displayed.

The conversation list 124 can display a list of recent communicationsbetween the user and the sender 112 or involving the user and the sender112. The communications displayed on the conversation list 124 can be alist of past e-mails, text messages, instant messages, telephone calls,social network communications, message board posts or voice over IPcommunications involving the sender 112. In some implementations, theconversation list 124 can be a list of recent conversation threadsinvolving the sender 112. A conversation thread is a series ofcommunications that can be grouped together. For example, a series ofe-mails having the same or similar subjects can be grouped together as aconversation thread. In another example, a group of instant messagesbetween the sender 112 and the user that occurred over a specific periodof time can be grouped together as a conversation thread. For example,if the user sent and received a series of instant messages from thesender 112 over a three hour period earlier in the day, and thatconversation was separated from another series of instant messagesbetween the user and the sender 112 by a period of 2 hours, the instantmessages that were sent and received during that three hour period canbe grouped together as a conversation thread. In another example, aseries of telephone calls between the user and the sender 112 thatoccurred during a set time period can be grouped together as aconversation thread.

The communications or conversation threads displayed in the conversationlist 124 can be listed in order based on a ranking system. In oneimplementation, conversation threads can be listed in order of mostrecent communications to oldest communications. In some implementations,conversation threads can be listed in order of oldest to most recent. Insome implementations, conversation threads can be listed in order ofimportance with conversation threads containing communications marked asurgent being ranked higher than conversation threads with fewercommunications marked urgent or no communications marked urgent. In someimplementations, the system 100 can determine which conversation threadsare work related and which conversation threads are social. Theconversation threads that are work related can then be ranked higherthan the conversation threads that are social. In some implementations,conversation threads can be ranked based on the number of communicationsin the conversation thread.

Communications that are listed in the conversation list can includecommunications initiated by the sender 112, communications for which thesender 112 is a recipient, communications on which the sender 112 hasbeen copied, or communications in which the sender 112 is mentioned.

In the example depicted in FIG. 1A, the conversation list 124 displays alist of recent conversation threads involving the user and the sender112. The conversation threads displayed are for recent e-mailcommunications involving the user and the sender 112. The e-mails ineach conversation thread are grouped by subject. The conversation list124 displays the subject for each conversation thread, the number ofe-mails in each conversation thread, and the amount of time that haspassed since the last communication for this conversation thread wassent or received. In some implementations, additional information can bedisplayed for each conversation thread, including: time and date of thelast communication in the conversation thread, time and date of thefirst communication in the conversation thread, other contacts involvedin the conversation thread, average length of communications in theconversation thread, total number of people involved in the conversationthread, level of importance of the communications in the conversationthread, attachments shared in the conversation thread, calendar eventsrelated to the conversation thread, other forms of communication relatedto the conversation thread, relevant web data, or average response timeof communications in the conversation thread.

In some implementations, the conversation list 124 can display a summaryor the first few lines of the most recent communication for eachconversation list. In some implementations, the conversation list 124can display a summary or the first few lines of the first communicationfor each conversation list. In some implementations, the conversationlist 124 can display a summary or the first few lines of the lastcommunication initiated by the sender 112 for each conversation list.

The files exchanged list 126 displays a list of files that were attachedto communications involving the user and the sender 112. This caninclude communications initiated by the user for which the sender 112was a recipient, communications initiated by the sender 112 for whichthe user was a recipient, or communications initiated by a third partyfor which the sender 112 and the user were both recipients. The filesexchanged list 126 can also include files that were exchanged betweenthe user and the sender 112 without using a communication medium. Forexample, the files exchanged list 126 can include files that weretransferred from the sender 112's network drive to the user's computeror network drive. In another example, the files exchanged list 126 caninclude files that were transferred to the user's computer or networkdrive from an external hard drive, flash drive, or floppy disk belongingto or populated by the sender 112.

The files displayed in the files exchanged list 126 can be listed inorder based on a ranking system. In one implementation, files can belisted in order of most recently received files to least recentlyreceived files. In some implementations, files can be listed in order ofoldest to most recent. In some implementations, files can be listed inorder of importance, with files that were attached to communicationsmarked as urgent being ranked higher than files attached tocommunications that were not marked as urgent. In some implementations,the system 100 can determine which files are work related and whichfiles are personal. The files that are work related can then be rankedhigher than the files that are personal. In some implementations, filescan be ranked based on the size of the files.

In some implementations, files can be ranked in order of most recentlymodified to least recently modified. In some implementations, files canbe ranked based on creation date of the files. In some implementations,files can be ranked based on the authors of the files. In someimplementations, files can be ranked based on recent activity ofcommunication threads associated with the files. For example, a firstfile that was sent as an attachment to a communication in acommunication thread for which the most recent communication occurredtoday can be ranked higher than a second file that was sent as anattachment to a communication in a communication thread for which themost recent communication occurred three days ago, even if the firstfile was sent before the second file.

In some implementations, the files displayed in the files exchanged list126 can be grouped together. The files can be grouped together based onthe subject of the communications to which the files were attached, filename, file title, date of the file, date of the communication, filetype, or subject matter of the file. For example, if a document hasundergone several rounds of revisions, the different versions of thedocument can be grouped together so that the different versions of thedocument can be easily compared to one another. In another example, anumber of files about rain forests can be grouped together since theyall contain related subject matter.

In another example, all image files can be grouped together so that theycan be more easily viewed, or easily put into a slide show. For example,a group of image files can be displayed as a slide show and each slidecan contain additional information about the image being displayed, suchas who sent the image, recipients of the image, the date the image wassent or received, or other information drawn from one or morecommunications to which the image was attached.

In some implementations, the person profile 108 can include additionalinformation about the selected e-mail 110. The system 100 can extractinformation from the e-mail 110 and use this information to gather anddisplay data from websites, search engines, or other sources ofinformation. For example, the e-mail 110 may contain information abouttravel arrangements. The e-mail 110 can be an e-mail from an airline,travel agent, travel website or other source. If the e-mail 110 containsinformation about a flight, such as a flight number, an airline, adeparture time, an arrival time, a departure city, or an arrival city,the system 100 can use this information to query search engines ortravel websites for information about the flight. This information caninclude expected departure time, expected arrival time, expected delays,weather in the destination city, weather in the departure city, or anychanges to the flight. This information can then be displayed as part ofthe person profile 108. This allows the user to see when changes totravel arrangements have occurred, and easily contact a travel companyor airline in order to correct the situation.

In another example, the e-mail 110 can contain information about apurchase from an on-line retailer. The e-mail 110 can contain shippinginformation, shipping status, or order information. If the e-mail 110contains a shipping number for the shipment of a recently purchaseditem, the system 100 can query a search engine or shipping web site toextract information about the current status and expected arrival of theitem. This information can then be displayed as part of the personprofile 108.

In another example, the e-mail 110 can contain information about an itemor service that the user is interested in purchasing. The system 100 canquery one or more search engines, websites, or on-line retailers todetermine which retailer or website has the best price or currently hasthe item in stock or the service available. This information can then bedisplayed as part of the person profile 108.

FIG. 1 B shows a person profile 130 for a person 132 named “Jen Ertel”.The person profile 130 for the person 132 can be displayed in responseto an action by a user that indicates either an implicit or directrequest to view the person profile 130 of the person 132. Actions by theuser that can cause the person profile 130 for the person 132 to bedisplayed can include viewing or selecting a communication sent by theperson 132, viewing or selecting a communication for which the person132 is listed as a recipient, composing or initiating a communicationwith the person 132, selecting or clicking on a name, screen name, ore-mail address of the person 132, or performing a search for informationrelated to the person 132.

The person profile 130 includes a search bar 134. The search bar 134 canbe used to request that information be displayed about a particularperson, topic, conversation thread, communication, or file. For example,a search performed using the search bar 134 and the search string “AllanTate” can result in a person profile for a person named Allan Tate beingdisplayed. In another example, a search using the search string“sundaypresentation.ppt” can result in information about a file named“sundaypresentation.ppt” being displayed. In another example, a searchusing the search string “2002 Sales Goals” can result in information tobe displayed regarding communications with the subject “2002 SalesGoals”, containing the phrase “2002 Sales Goals”, or having attachmentsthat contain the phrase “2002 Sales Goals”.

Search criteria that can be used to identify a person profile caninclude names, screen names, social network profile names, socialnetwork profile URLs, physical addresses, website URLs, e-mailaddresses, e-mail subject lines, file names, or telephone numbers. Forexample, a search using the search string “allan.tate@example.com” canresult in a person profile for a person named “Allan Tate” beingdisplayed. In the example depicted in FIG. 1 B, a search for the phonenumber “(612) 555-1243” may have been performed in-order to display theperson profile 130 for the person 132 named “Jen Ertel”.

The person profile 130 can include a title bar 136. The title bar 136can display a name, a nick name, a screen name, a primary e-mailaddress, or other identifying title for the person 132 so that the usercan easily identify who the information in the person profile 130 isrelated to.

The person profile 130 can also include an image 138. The image 138 canbe a picture of the person 132 to help the user more easily identify whothe information in the person profile 130 is related to or to help theuser identify whom he or she is communicating with. For example, if theuser receives an instant message from a person with the screen name“summergirl” the user may not be able to remember who this screen namebelongs to. When the instant message is received, the person profile 130can display information about the person with the screen name“summergirl” including a picture of the person as the image 138. Thiscan help the user to identify whom he or she is communicating with. Theimage 138 can also be an image, icon, or picture associated with theperson 132. The image, icon, or picture can be used to identify theperson 132 as a business contact, co-worker, friend, socialacquaintance, client, or contractor. For example, all of the personprofiles 130 for contacts from a particular company can display a logofor that company. This can help the user to quickly identify whatrelationship he or she has with these particular contacts.

The image 138 can be added to the person profile 130 by the user, or itcan be automatically extracted from a communication with the person 132or from a website or profile page belonging to or about the person 132.For example, if a social network screen name or URL for the person 132is known, an image from the person 132's social network profile page canbe extracted and used as the image 138. In another example, if instantmessage communications with the person 132 include an icon thatidentifies the person 132, this instant message icon can be extractedand used as the image 138.

The person profile 130 can include communication statistics 140 aboutcommunications involving the person 132. These communication statistics140 can include the statistics as previously described for FIG. 1A. Inthe example shown in FIG. 1B, one of the communication statistics 140displayed is a graph 142 showing what times of day communications arereceived from the person 132 and the relative volume received from theperson 132 at each time of day. This can help the user to determine whenor how quickly the person 132 will respond to a new communication fromthe user. For example, if the user lives in the United States and theperson 132 lives in Germany, most of the communications received fromthe person 132 may occur between 5:00 am and 10:00 am of the user'slocal time. The graph 142 can easily display this information so thatthe user can determine when to reasonably expect a response to a recentcommunication from the person 132.

Other communication statistics 140 displayed in the person profile 130in FIG. 1B include the total number of communications received from theperson 132, the total number of communications sent to the person 132,and a rank 144. The rank 144 can be the rank of the person 132 comparedto all other persons that the user communicates with. The rank 144 canbe based, for example, on total communications exchanged, total numberof attachments exchanged, total number of communications sent, totalnumber of communications received, length of communications orimportance of communications.

Communication statistics 140 can be displayed as graphs or charts asshown in FIG. 1 B, or as text. In some implementations, statistics canbe displayed in the person profile 130 or in an additional panel orpop-up window as “fun facts”. For example, when viewing a person profilefor someone named “Matt Miller”, the person profile can display amessage that reads “Matt's birthday is next week”. In another example, apop-up bubble with the message “Your last communication with Matt was 21days ago” can be displayed. In another example, a panel can display amessage reading “You send Matt 20 times as many messages as he sendsyou.”

Another example of a fun fact that can be displayed is “Matt is your 5thmost e-mailed contact”. Another example of a fun fact that can bedisplayed is “your most e-mailed contact is Steve.’. Another example ofa fun fact that can be displayed is “the fastest responder to yourcommunications is Garrett.” The fun facts can include any combination ofcommunication statistics, communication information, contactinformation, or contact statistics.

In some implementations, communication statistics 140 can be shared withother persons. For example, the user can choose to share communicationstatistics with the person 132. The person 132 will then be able to viewcommunication statistics 140 about his or her communications with theuser. In some implementations, the user can indicate that one or morepersons are trusted contacts. Communication statistics 140 can beautomatically shared with all persons indicated as trusted contacts.

Other information, such as calendar information, contact information, orcontact network information can also be shared with trusted contacts.

The person profile 130 can include contact information 146. The contactinformation 146 displayed can include e-mail addresses, telephonenumbers, screen names, social network profile names, social networkprofile URLs, physical addresses, facsimile numbers, or website URLs.The contact information 146 can be collected from a variety of sourcesincluding communications between the person 132 and the user,communications between the user and other persons, e-mail body text,e-mail meta data, e-mail header information, e-mail attachments, websearch engines, people search engines, social networks, e-mail clients,instant messages, personal web pages, telephone directories, scannedbusiness card data, text messages, picture sharing websites, videosharing websites, personal profile pages, telephone communications, orcustomer relationship management systems. For example, when the userreceives an e-mail from a person, that person's e-mail address can beadded to the list of contact information 146 for that person's personprofile 130. In another example, when the user makes a phone call to aperson, that person's telephone number can be added to the list ofcontact information 146 for that person's person profile 130.

In some implementations, contact information 146 can be extracted fromthe body, subject, or meta data of a communication between the user andthe person 132. For example, if the user receives an e-mail from theperson 132 with a signature block at the end that includes a telephonenumber, facsimile number, and screen name for the person 132, thiscontact information can be extracted from the e-mail and added to thelist of contact information 146 for the person 132's person profile 130.In another example, an e-mail from a person can include an address forthe person in the body of the e-mail or in an attachment to the e-mail,this address can be extracted from the email or attachment and added tothe list of contact information 146 for that person's person profile130. In another example, the person 132 can leave a social network postfor the user telling the user the person 132's instant message screenname, this screen name can be added to the list of contact information146 for the person 132's person profile 130.

In some implementations, contact information 146 for the person 132 canbe extracted from a communication from a third party. For example, theuser can receive an e-mail from Bill that contains the text “Mary's cellphone number is 608-555-5353”. This phone number can be extracted fromBill's e-mail and added to the list of contact information 146 forMary's person profile 130. In another example, the user can receive ane-mail with an attachment that contains a list of telephone numbers,e-mail addresses, and office numbers for everyone in the user's office.The telephone number, e-mail address, and office number for each personlisted on the attachment can be extracted and added to the list ofcontact information 146 for the person profiles 130 of each personlisted on the attachment.

Contact information 146 can be extracted from multiple sources,including multiple e-mail clients, multiple web mail systems, multipleinstant message clients, multiple telephone numbers, multiple socialnetworks, or multiple web pages.

In some implementations, contact information 146 can be collected usingsearch engines, telephone directories, or people search engines. Searchcriteria can include e-mail addresses, names, screen names, socialnetwork profile names, phone numbers, personal website URLs, socialnetwork profile URLs, facsimile numbers or physical addresses. Forexample, a search of a telephone directory or people search engine for“Rex Banner” can return a telephone number for Rex Banner. Thistelephone number can then be added to the list of contact information146 for Rex Banner's person profile 130. In another example, a peoplesearch or web search for the e-mail address “alewis@example.com” canreturn a URL for a social network profile for Adam Lewis. The name “AdamLewis” can then be associated with the e-mail address“alewis@example.com” in a person profile 130. In addition, the socialnetwork profile URL and social network screen name for Adam Lewis can beadded to the list of contact information 146 for Adam Lewis's personprofile 130. Furthermore, additional contact information, that is listedon the social network profile for Adam Lewis, such as additional e-mailaddresses, phone numbers, instant message screen names, etc., can beextracted from the social network profile and added to the list ofcontact information 146 for Adam Lewis's person profile 130.

In another example, a web search or person search for a person canreturn a photo or video sharing website profile for the person. The URLor screen name for the person's photo or video sharing website profilecan be added to the list of contact information 146 for the person'sperson profile 130. In addition, the photo or video sharing website maycontain additional contact information for the person that can beextracted and added to the list of contact information 146 for theperson's person profile 130.

In another example, contact information 146 for the person 132 caninclude an e-mail address “jertel@examplecompanyltd.com”. A web searchcan be performed to identify the website associated with the e-mailextension “examplecompanyltd.com”. For example, this e-mail extensioncan be associated with a company called “Example Company ltd.” Thewebsite for Example Company ltd. can then be searched for informationabout the person 132. The website may include a profile page for theperson 132 that includes contact information that can be added to thelist of contact information 146 for the person 132's person profile 130.In addition, the URL for the profile page can be added to the list ofcontact information 146 for the person 132's person profile 130.

In some implementations, the address for a person can be used to refinethe search results for that person by constricting the results toinformation about persons in a specific geographic area. For example, ifa search is being performed for information on a person with a commonname, such as “Bill Johnson”, and Bill Johnson's address is known, thesearch results can be refined by restricting the results to informationabout person's named Bill Johnson in the city of the known address. Insome implementations, other information about a person can be used torefine search results for that person.

In some implementations, contact information can be extracted from ashared network drive or through a secure connection. In someimplementations, contact information can be automatically shared betweensystems. For example, the person 132 can elect to share contactinformation with all people in a trusted network, such as all peoplewith e-mail extensions from the same company. A computer belonging tothe person 132 can then automatically send contact information to alltrusted people. If the user is in the network of trusted people, theperson 132's contact information will automatically be shared with acomputer or system belonging to the user.

In some implementations, contact information for the person 132 can bemanually added or removed from the person profile 130 by the user. Insome implementations, contact information for the person 132 can bemanually added or removed from the person profile by the person 132 orby a third party. In some implementations, the user can choose whichcontact information for each person is displayed in that person's personprofile.

In some implementations, when a mouse cursor or other selection tool ishovered over/indicates a piece of contact information in the list ofcontact information 146, a pop-up bubble or other indicator can bedisplayed which indicates the source from which the piece of contactinformation was received or extracted. For example, if a phone numberhas been extracted from an e-mail, a hover bubble can be displayed whichshows the e-mail or a portion of the e-mail where the phone number wasextracted with the extracted info highlighted or demarcated in some way.

In some implementations, the user can be allowed to validate contactinformation in the list of contact information 146. Validated contactinformation can be indicated as validated, and un-validated contactinformation can be indicated as un-validated. For example, if a phonenumber for the person 132 is extracted from an email, the user can lookat the phone number to determine if it is indeed the correct phonenumber for the person 132. If the user believes that the phone number iscorrect, the user can choose to validate the phone number. The phonenumber can then be displayed along with an indication that it has beenvalidated, such as with a check mark icon, or text that reads “valid”.If the user is unsure if the phone number is correct, or has not takenthe time to validate the phone number, the phone number can be displayedwith an indication that it has not been validated, such as with aquestion mark icon, or the text “not validated”.

In some implementations, presence of the person 132 can be indicated forsome or all of the contact information on the list of contactinformation 146. For example, an indicator next to a person's instantmessage screen name can indicated if the person is currently logged ontothe related instant message network. In another example, an indicatornext to a person's social network screen name or URL can indicate if theperson is currently logged onto the related social network or if theperson has made a recent update to his or her social network profile. Inanother example, an indicator next to a person's e-mail address canindicate if the person has put up an away message or out of the officemessage.

In some implementations, the person profile 130 can display informationabout the person 132's current location. If the person 132 is inpossession of a GPS unit, GPS enabled phone, or other location detectiondevice, the person 132 can choose to share his or her locationinformation. There are several services that allow a person to sharelocation information with other people. The person 132 can choose toshare his or her location information with the user. The person profile130 can then display the current location of the person 132. Thislocation information can be displayed as an address, map coordinates, ora graphic of a map with an icon to indicate the person 132's presentlocation.

Other information about the person 132 that can be displayed on theperson profile 130 can include birthday, gender, age, job title,employer, universities attended, family information, or otherbiographical data. Information from Customer Relationship ManagementSystems (CRMs) about or related to the person 132 can also be displayedin the person profile 130. Information about calendar items or scheduledmeetings related to the person 132 or related to a communication canalso be displayed as part of the person profile 130.

In some implementations, information from one or more websites can bedisplayed as a chronological feed of information in the person profile130. This information can be queried on the web via one or more searchengines or from one or more specific websites through establishedassociations between the person 132 and the one or more websites. Forexample, this information can be found by general searching, peoplesearching, or querying websites where it has been established that theperson 132 is generating content or is the subject of content on thewebsite. Search terms for these searches can include e-mail addresses,names, screen names, social network profile names, phone numbers,personal website URLs, social network profile URLs, or physicaladdresses. Information that is extracted from communications with theperson 132 can also be used as search criteria.

The person profile 130 can include a schedule time link 148. The usercan click on/interact with the schedule time link 148 to send acommunication to the person 132 to request a meeting or to send theuser's schedule to the person 132. For example, clicking on the scheduletime link 148 can cause an e-mail to be automatically composed that isaddressed to the person 132 that contains all of the times over thecourse of the next week that the user is available during businesshours. This schedule information can be extracted from a calendarassociated with an e-mail client, web mail account, social networkaccount, instant messaging program, telephone, personal digitalassistant (PDA), or website belonging to the user or associated with theuser. In addition, schedule information can be extracted from a calendarstored on a computer, network drive, or other data storage locationbelonging to or associated with the user. In one implementation,clicking on the schedule time link 148 can cause a communication to besent to the person 132 requesting schedule information from the person132.

The person profile 130 can also include one or more initiatecommunication links 150. In the example shown in FIG. 1B, the initiatecommunication link 150 displayed will cause an e-mail addressed to theperson 132 to be automatically generated when it is clicked on. Otherforms of communication that can be initiated using an initiatecommunication link 150 include telephone calls, instant messages, textmessages, social network messages, social network posts, message boardposts, facsimiles, or voice over IP communications. For example, theperson profile 130 can include a “call Jen” link that can cause theuser's cell phone to dial Jen's phone number when clicked on. In anotherexample, the person profile 130 can include an “instant message” linkthat when clicked on, can cause an instant message program toautomatically open and generate an instant message addressed to a screenname of the person 132.

The person profile 130 can include a contact network 152. The contactnetwork 152 can include a list of contacts associated with the person132. The contact network 152 can be populated using the methodspreviously described in the description of FIG. 1A. The person profile130 can also display the total number of contacts associated with theperson 132 in the contact network 152. In the example shown in FIG. 1B,the contact network 152 displayed in the person profile 130 indicatesthat there are 50 contacts in Jen's contact network 152.

Clicking on, selecting, or interacting with one or more contacts fromthe contact network 152 can cause one or more actions to occur. In oneimplementation, selecting a contact from the contact network 152 cancause a person profile for that contact to be displayed. In someimplementations, selecting one or more contacts from the contact network152 can cause a communication directed to the selected contacts to beinitiated. For example, selecting three contacts from the contactnetwork 152 can cause an e-mail addressed to the three contacts to begenerated. In another example, clicking on three contacts from thecontact network 152 can cause the user's telephone to initiate aconference call with the selected contacts. In some implementations,selecting one or more contacts from the contact list can cause acommunication directed to the selected contacts and the person 132 to begenerated.

In some implementations, selecting a contact from the contact network152 can cause the most recent communication or conversation threadbetween the user and the selected contact to be displayed. In someimplementations, selecting a contact from the contact network 152 cancause the most recent communication or conversation thread involving thecontact, the person 132, and the user to be displayed. In someimplementations, moving a mouse cursor over a contact in the contactnetwork 152 can cause information about the contact to be displayed. Forexample, moving a cursor over a contact can cause a small pop-up bubbleto appear that displays the contact's phone number, e-mail address, orother contact information. In some implementations, contacts can bemanually added or removed from the contact network 152 by the user.

The person profile 130 can include a conversation list 154 that includesa list of recent communications or conversation threads involving theuser and the person 132 as previously described in the description ofFIG. 1A. The conversation list 154 can display the total number ofcommunications or conversation threads involving the user and the person132. In the example shown in FIG. 1B, the conversation list 154indicates that 2510 conversation threads have occurred that involved theuser and the person 132.

Clicking on or selecting a conversation thread or communication in theconversation list 154 can cause a more detailed summary of theconversation thread or communication to be displayed. For example,selecting a conversation thread can cause a summary of one or morecommunications in the conversation thread to be displayed. In anotherexample, selecting a communication in the conversation list 154 cancause a summary of the communication to be displayed. In someimplementations, selecting a communication in the conversation list 154can cause the communication to be displayed. For example, selecting ane-mail from the conversation list 154 can cause the e-mail to bedisplayed.

In some implementations, selecting a conversation thread can cause themost recent communication to be received or the most recentcommunication to be sent in that conversation thread to be displayed. Insome implementations, selecting a conversation thread in theconversation list 154 can cause the first communication in thatconversation thread to be displayed. In some implementations, selectinga conversation thread from the conversation list 154 can cause acommunication addressed to all of the participants of the conversationthread to be generated. For example, selecting an e-mail conversationthread can cause an e-mail to be automatically generated that isaddressed to all of the e-mail addresses involved with the selectedconversation thread. In some implementations, communications orconversation threads can be manually added or removed from theconversations list 154 by the user.

The person profile 130 can include a files exchanged list 156. The filesexchanged list 156 can contain a list of files exchanged between theuser and the person 132 as previously described in the description ofFIG. 1A. For each file listed in the files exchanged list 156, theperson profile 130 can display a file name, a file title, an icon, thetime or date when the file was received, the amount of time that haselapsed since the file was received, the subject of the communication towhich the file was attached, or other information about the file. Iconsdisplayed next to a file name or file title can indicate what type ofdocument the file is. In the example depicted, a file 158 with the filename “sturgeon 001 .jpg” is displayed. An icon next to the file name forthe file 158 indicates that the file 158 is a picture file. A date nextto the file name indicates that the file 158 was received on April 23.

Clicking on or selecting a file in the files exchanged list 156 cancause the file to open. In some implementations, selecting a file cancause the communication to which the file was attached to be displayed.In some implementations, selecting a file can cause a list of files withthe same file name to be displayed. This allows the different versionsof a document that has undergone several rounds of revisions to bereviewed and compared to each other. This list of files can include atime and date stamp for each version of the file so that the most recentrevision can be easily identified. In some implementations, selecting afile can cause a summary of the file to be generated and displayed. Forexample, hovering a cursor over a file in the files exchanged list 156can cause an information bubble containing the title and first few linesof the file to be displayed. In some implementations, files can becopied from the files exchanged list 156 to other locations. In someimplementations, files can be manually added or removed from the filesexchanged list by the user.

The person profile 130 can include one or more menu buttons 160. Themenu buttons can be used to change personal settings or preferences,change viewing preferences, or access menus or help information. Theperson profile 130 can also include a minimize button 162 that can causethe person profile 130 to minimize or close. When the minimize button162 is clicked or selected, a minimized version of the person profile130 that takes up less space in a viewing window can be displayed. Theminimized version of the person profile 130 can include a summary ofsome or all of the information displayed by the person profile 130.

FIG. 1C shows a viewing panel 164. The viewing panel 164 can display aperson profile such as the person profile 130 of FIG. 1B. The viewingpanel 164 can also display information about communications,communication attachments, files, or conversation threads. In theexample shown in FIG. 1C the viewing panel 164 displays informationabout a conversation thread 166. The information about the conversationthread 166 can be displayed in response to a user clicking on aconversation thread 166 in a conversation list, such as the conversationlist 154 from FIG. 1 B. The conversation thread 166 can also bedisplayed in response to the user viewing, reading, selecting, opening,or writing a communication that is part of the currently displayedconversation thread 166. In some implementations, the conversationthread 166 can be displayed in response to a search performed by theuser. For example, the user can use a search bar 168 to search for aconversation thread 166 based on the subject of the conversation thread166, participants in the conversation thread 166, files attached tocommunications in the conversation thread 166, or key words or terms inthe communications of the conversation thread 166.

The viewing panel 164 can include one or more navigation buttons 170.The navigation buttons 170 can include a profile view navigation button172. The profile view navigation button 172 can be used to return theviewing panel 164 to a profile view so that the viewing panel 164displays information about the sender or recipient of a currentlyselected communication, or another person as indicated by the user. Thenavigation buttons 170 can also include a back button 174. The backbutton 174 can be used to display a person profile, conversation thread,or other information that was previously displayed in the viewing panel164. For example, if the user was previously viewing a person profilefor a person named Mark Wagner, clicking on the back button 174 cancause the viewing panel 164 to display the person profile for MarkWagner. In another example, if the user was previously viewinginformation about an e-mail attachment, clicking on the back button 174can cause the viewing panel 164 to display the previously viewed e-mailattachment information.

The navigation buttons 170 can also display a navigation history thathas lead to the current information being displayed in the viewing panel164. In the example shown in FIG. 1C, the navigation buttons 170indicate that the user first viewed a person profile for Jen Ertel. Theuser then viewed a person profile for Jerri Clark Wagner. The user mayhave opened the person profile for Jerri Clark Wagner by clicking on thename Jerri Clark Wagner in a contact network or list of contacts on JenErtel's person profile, or by performing a search for Jerri ClarkWagner, or other information associated with Jerri Clark Wagner. Thenavigation buttons 170 indicate that the user then viewed a personprofile for Mark Wagner. The user may have caused the currentconversation thread 166 to be displayed by clicking on a conversationthread in a conversation list similar to the conversation list 124 fromFIG. 1A. In some implementations, clicking on or selecting any of thebuttons in the navigation history can cause the viewing panel 164 todisplay the person profile, conversation thread, communication,communication attachment, or other information associated with theselected navigation button 170.

The viewing panel 164 can include a title bar 176. The title bar 176 caninclude the type of information being displayed in the viewing panel,the subject, and other key information. When the information beingdisplayed in the viewing panel 164 is a conversation thread 166, thetitle bar 176 can indicate that a conversation is being viewed, thetitle or subject line of the conversation thread, the number ofcommunications involved in the conversation thread, the types ofcommunications involved in the conversation thread, or the number ofpeople involved in the conversation thread. In the example shown, thetitle bar 176 indicates that a conversation is being viewed, that thesubject line of the communications in the conversation thread 166 is“dinner?”, that there are 8 people involved in conversation thread 166,that 18 communications are included in the conversation thread 166, andthat all 18 communications are e-mails.

The viewing panel 164 can include a summary of some or all of thecommunications 178 that make up the conversation thread 166. Informationdisplayed as part of the summary for each communication 178 can includethe sender of the communication 178, the recipients of the communication178, the time or day that the communication 178 was sent or received,attachments to the communication 178, the first few lines or sentencesof the communication 178, the importance of the communication 178, orthe number of recipients of the communication 178. For example, ane-mail summary 180 indicates that the user sent an e-mail in response toan e-mail from Jerri 1 week ago and that 5 additional recipients werealso listed on the e-mail. The e-mail summary 180 also displays thefirst lines of the e-mail sent to Jerri.

In some implementations, clicking on or selecting a communicationsummary in the conversation thread 166 can cause the relatedcommunication to be displayed. For example, clicking on the e-mailsummary 180 can cause the e-mail sent from the user to Jerri to bedisplayed. In another example, selecting a communication summary in theconversation thread 166 can cause a person profile for the sender or oneor more recipients of the related communication to be displayed. Inanother example, selecting a communication summary in the conversationthread 166 can cause one or more attachments or a list of attachments tothe related communication to be displayed. In some implementations,selecting a communication summary in the conversation thread 166 cancause a communication addressed to the sender or one or more recipientsof the related communication to be automatically generated. In someimplementations, selecting a communication summary in the conversationthread 166 can cause a more detailed summary for the relatedcommunication to be displayed.

The viewing panel 164 can include a detail adjustment control 182. thedetail adjustment control 182 can be used to modify the amount of detailthat is displayed in each communication summary in the conversation list166. In one implementation, adjusting the detail adjustment control 182can increase or decrease the number of words or lines of a body of acommunication that are displayed in each communication summary. In someimplementations, adjusting the detail adjustment control 182 canincrease or decrease the amount of information that is displayed foreach communication summary. For example, the detail adjustment controlcan be changed to display an e-mail address and phone number for eachsender or recipient of each communication 178 in the correspondingcommunication summary. In another example, the detail adjustment control182 can be used to control what information is used to identify sendersor recipients of communications 178 in each communication summary.Information used to identify senders or recipients can include names,nick names, screen names, e-mail addresses, telephone numbers, socialnetwork profile names, or company names.

In some implementations in which some or all of the communications thatmake up a conversation thread 166 are telephone calls or voice over IPcommunications, audio recordings of some or all of the telephone callsor voice over IP communications can be displayed in the conversationthread 166. Clicking on or selecting a telephone call or voice over IPcommunication in the conversation thread 166 can cause an audiorecording of the communication to play. In some implementations,automatically or manually created transcripts of telephone calls orvoice over IP communications that make up part or all of a conversationthread 166 can be displayed. In some implementations, a summary of atranscript of the audio communication can be displayed as part of acommunication summary in the conversation thread 166. Clicking on orselecting a communication summary of a telephone call or voice over IPcommunication for which a transcript exists can cause the fulltranscript of the audio communication to be displayed, or an audio fileof the audio communication to play.

The viewing panel 164 can include a conversation participants list 184.The conversation participants list 184 can be a list of senders andrecipients of the communications 178 that make up the conversationthread 166. Information about each participant in the conversationthread 166 can be displayed, including name, contact information, numberof communications initiated in the displayed conversation thread 166,and other relevant information. The conversation participants list 184can also indicate the total number of participants involved in theconversation thread 166.

In some implementations, clicking on or selecting a person listed in theconversation participants list 184 can cause a person profile for theselected person to be displayed. In some implementations, selecting aperson from the conversation participants list 184 can automaticallygenerate a communication addressed to the selected person. In someimplementations, selecting a person from the conversation

Participants list 184 can cause all communications or summaries ofcommunications from the current conversation thread 166 that wereinitiated by the selected person to be displayed.

The viewing panel 164 can include a files exchanged list 186. The filesexchanged list 186 can display a list of files that have been exchangedin the current conversation thread 166. For example, the files exchangedlist 186 can list all of the files that have been attached tocommunications 178 in the conversation thread 166. Clicking on orselecting a file from the files exchanged list 186 can cause theselected file to open. In some implementations, selecting a file fromthe files exchanged list 186 can cause one or more communications towhich the file was attached to be displayed. In some implementations,selecting a file from the files exchanged list 186 can cause one or morecommunication summaries for communications to which the file wasattached to be displayed.

FIG. 1D shows a portion 188 of a person profile that can be included ina person profile such as the person profile 130 in FIG. 1B. The portion188 displays an email address 190 for a person that has hadcommunications with a user. The portion 188 also includes a requestcontact information link 192. When clicked or selected, the requestcontact information link 192 can cause a communication addressed to theperson using a known piece of contact information to be automaticallygenerated. This automatically generated communication will requestadditional contact information from the person. If the person respondsto the automatically generated communication, the requested contactinformation can be extracted from the response and displayed as part ofthe person profile. The extracted contact information can also be usedin future communications with the person. For example, if the instantmessage screen name of the person is known, but the e-mail address forthe person in unknown, clicking on the request contact information link192 can automatically generate an instant message addressed to theperson's known screen name with a request for the person's e-mailaddress. When the person responds to the automatically generated instantmessage with his or her e-mail address, the e-mail address can beextracted from the instant message and displayed as part of the personprofile.

In the example depicted in FIG. 1D, the e-mail address 190 for theperson is known, however a phone number for the person is unknown.Clicking on the request contact information link 192 can cause an e-mailaddressed to the e-mail address 190 to be automatically generated withthe text “Hello, I don't have your phone number. Can you please send itto me.” If the person responds to the automatically generated e-mailwith a phone number, the phone number can be extracted from the e-mailand displayed as part of the person profile.

In some implementations where the person responds with more than oneadditional piece of contact information, each additional piece ofcontact information can also be extracted and displayed as part of theperson profile. For example, if an e-mail requesting a phone number fromthe person is automatically generated and sent, the person may send aresponse e-mail containing both a home phone number and work phonenumber. Both phone numbers can be extracted from the response e-mail anddisplayed with the work phone number and home phone number respectivelyindicated.

FIG. 1E shows a portion of a person profile 194. The person profile 194includes a shared notes panel 196. The shared notes panel 196 can beused by a user to share information with other participants who have arelationship with the user or are known contacts of the user. Sharednotes can take the form of text, documents, video files, audio files,images or hyperlinks The user can designate which persons or contactsare permitted to view shared notes.

Posting a shared note can involve typing text or a hyperlink in a box198 in the shared notes panel 196. One or more files can be added to theshared note by browsing for the files in a file directory and selectingthe files to be attached to the shared note. In some implementations,one or more files can be added to the shared note by dragging the one ormore files into the box 198. The one or more files dragged into the box198 can include files in a folder on a computer or computer network,files that are attached to communications, files that are listed as partof a communication summary, or files that are listed in an exchangedfiles list.

Shared notes can be displayed as a part of a person profile and can bedisplayed chronologically or grouped by the type of shared note or othergrouping criteria. For example, if a first person posts a shared noteand a second person is on a list of contacts that are permitted to viewshared notes posted by the first person, a person profile for the firstperson on a computer used by the second person can display the sharednote from the first person as part of the person profile.

In some implementations, information shared in a shared note can be usedto refine web searches. For example, a hyperlink can be sent as part ofa shared note. This hyperlink can be included in a list of searchresults for a subject related to the topic of the shared note. Sharednotes can also be used to profile a person or group of people and theirinterests by analyzing common sources of information and types ofinformation commonly shared. This can be used to target adverting orrecommend sources of information.

In some implementations, the shared notes panel 196 can be a panel,pop-up window, or pop-up bubble that is separate from the person profile194. In some implementations, the shard notes panel 196 can be part of aconversation thread display. In some implementations, the shared notespanel 196 can be part of a viewing panel such as the viewing panel 164of FIG. 1C. In some implementations, files that are shared using ashared notes system such as the one described can be stored andretrieved upon request, by for example, visiting the file location in aweb browser, or when a user of the system views a person profile of acontact who shared the file.

FIG. 2 shows an example communication delivery system 200. In the system200, a first device (e.g., computer 202) belonging to a first user cantransmit a communication to a second device (e.g., computer 204)belonging to a second user over a computer network 206. The computernetwork 206 can be the Internet, an intranet, a LAN system or acompany's internal computer network. In some implementations, thecomputer 202 and the computer 204 can be desktop computers, laptopcomputers, cell phones, web enabled televisions, or personal digitalassistants. The communication transmitted from the computer 202 to thecomputer 204 can be an e-mail, phone call, instant message, textmessage, social network message or comment, message board post, or voiceover IP communication.

The computer 204 can extract data from the communication about the firstuser. This data can be used to make a person profile similar to theperson profile 130 shown in FIG. 1 B. Data extracted from othercommunications with the first user can also be used to create a personprofile for the first user. Data that is extracted from communicationswith the first user can be used to query websites, search engines,person search directories and other sources of information foradditional information about the first user that can be used to create aperson profile. Information from communications that can be used assearch criteria include names, screen names, social network profilenames, social network profile URLs, physical addresses, website URLs,e-mail addresses, or telephone numbers. Information that is collected asa result of these queries can be used in future searches to identifyadditional information that can be used to create a person profile.

For example, the computer 204 can receive an e-mail sent by the firstuser from the computer 202. The computer 204 can perform a search usinga search engine 208 with the first user's e-mail address as the searchcriteria. The search engine 208 can return a search result that includesthe first user's phone number. This phone number can be displayed aspart of a person profile for the first user. The search engine 208 canalso return the URL for or link to a personal website 210 belonging tothe first user. The personal website 210 may contain additionalinformation about the first user that can be used to create a personprofile, such as additional contact information or biographicalinformation.

In another example, the e-mail address belonging to the first user mayinclude an extension for a company. The computer 204 can perform asearch using the search engine 208 with the e-mail extension as thesearch criteria. A result returned by the search can be a companywebsite. The company website can be searched to reveal a profile page212 for the first user on the company website. The profile page 212 maycontain additional information about the first user that can be used tocreate a person profile, such as additional contact information orbiographical information.

In another example, the computer 204 can perform a search using a personsearch directory 214 with the first user's name or other contactinformation as the search criteria. The person search directory 214 canreturn search results with additional contact information and otherinformation that can be used to create a person profile for the firstuser.

In another example, the computer 204 can receive an e-mail sent by thefirst user from the computer 202. The e-mail can contain a socialnetwork profile name for the first user. The computer 204 can extractthis social network profile name from the e-mail and use it to access asocial network webpage 216. The social network webpage 216 can containadditional contact information and other information that can beextracted and used to create a person profile for the first user. Thesocial network webpage 216 can also contain additional contacts that canbe associated with the first user in a person profile. For example,persons on the friends list of the social network webpage 216, orpersons who have posted comments or messages on the social networkwebpage 216 can be listed as contacts in a contact network for the firstuser.

In another example, a search performed using the search engine 208 canreturn a URL or link for a photo or video sharing website 218 on whichthe first user has a profile. Additional contact information orbiographical information that can be extracted and used to create aperson profile for the first user. For example, a profile belonging tothe first user on a video sharing website may include an instant messagescreen name for the first user. This screen name can be extracted anddisplayed as part of a person profile for the first user.

Information extracted from communications between the first user andsecond user can also be used to update profile information on a socialnetwork webpage or other webpage. For example, the computer 204 candetect that the second user system has primarily used e-mail address“david@foo.com” in recent communications, while the second user'sprofile on the social network webpage 216 shows his email address as“david@bar.com”. The computer 204 can share the second user's new e-mailaddress with the social network webpage 216 and the social network canautomatically update the second user's info or suggest he update itbased on this changed behavior recorded by the computer 204.

Information from travel websites and on-line retailers can also beextracted and displayed as part of a person profile. For example, ane-mail containing information about a flight itinerary can be receivedby the computer 204. The computer 204 can extract a flight number orother information about a flight from the e-mail. The computer 204 canthen query a travel website 220 using the flight number or other flightinformation as search criteria. Information about the flight, such asexpected departure time, expected arrival time, expected delays, weatherin the destination city, weather in the departure city, or any changesto the flight can be displayed as part of a person profile.

In another example, an e-mail containing information about an item orservice that the second user is interested in purchasing can be receivedby the computer 204. The computer 204 can query one or more searchengines, websites, or on-line retailers 222 to determine which retaileror website has the best price or currently has the item in stock or theservice available. This information can then be displayed as part of theperson profile.

Information from mapping web sites and location tracking servers canalso be extracted and displayed as part of a person profile. Forexample, the first user can own a GPS unit, cell phone, or other devicethat is capable of transmitting the first user's current physicallocation. A location tracking server 224 can receive this transmissionand allow other users to access the first user's current locationinformation. If the second user has permission to view the locationinformation for the first user, the computer 204 can access the locationtracking server using the computer network 206 to receive locationinformation about the first user. This location information can bedisplayed as part of a person profile.

The computer 204 can also access a maps and directions website 226 tocreate a map of the first user's current location, or to generatedirections to the first user's current location. The map or directionscan be displayed as part of a person profile for the first user. Themaps and directions website 226 can also be used to generate a map ordirections to one or more known addresses for the first user, such as awork address or home address. The map or directions can be displayed aspart of a person profile for the first user.

FIG. 3 is a flow diagram of an example process 300 for collecting andpresenting historical communication and personal data. The process 300can, for example, be implemented in a system such as the system 100 ofFIG. 1A. In another example, the process 300 can be implemented in asystem such as the communication delivery system 200 of FIG. 2.

Stage 302 collects historical communication data and personal data. Forexample, communications such as e-mails, instant messages, phone calls,text messages, internet message board postings, social network messagesor comments, or voice over IP communications can be collected.Historical communication data and personal data can also be collectedfrom web search engines, people search engines, social networks, e-mailclients, personal web pages, telephone directories, scanned businesscard data, picture sharing websites, video sharing websites, personalprofile pages, travel websites, on-line retailers, or customerrelationship management systems.

The collected historical communication data and personal data caninclude contact information, biographical information, communicationtext, communication summaries, physical location information, mappinginformation, attachments to communications, weather information, travelinformation, and retail information.

Stage 304 deposits the collected data into a repository. For example,the collected data can be stored in a database on a user's computer. Thecollected data can also be stored on a network server, a web server, aremovable storage device, or as part of an e-mail client or othercommunication client.

Stage 306 monitors user behavior. For example, a system implementing themethod 300 can track the mouse movements, keyboard strokes, or mouseclicks of a user of the system, or active windows or mouse locationsdisplayed on a monitor or other display device of the system. The user'sbehavior can be monitored to determine if a user has opened, viewed,read, or composed a communication, such as an e-mail. The user'sbehavior can also be monitored to determine if the user has performed asearch, clicked on a particular item, or selected a particular item.

Stage 308 presents data from the repository in response to userbehavior. For example, referring to FIG. 1A, the person profile 108 canbe displayed in response to a user selecting the e-mail 110 in the inboxviewing panel 104. In another example, information about a person can bedisplayed in response to a user performing a search for the person'sname. In another example, information about a file can be displayed inresponse to a user clicking on the file in an e-mail or othercommunication. In another example, information about a topic can bedisplayed in response to a user clicking on or selecting text within thebody of a communication.

Links Exchanged

One embodiment provides a feature to present links exchanged between theuser and one or more persons selected by the user or identified in asearch.

In one embodiment, after a profile generator is installed, the profilegenerator indexes the data, based at least in part on the emails of theuser, to generate personal profiles, as discussed above. Further, theprofile generator looks for URLs inside message bodies and messagesubjects and stores the URLs as part of the profiles.

In one embodiment, the profile generator builds a database thatidentifies the URLs in the user's email, along with the associated mailmessage for each URL. For a given email message, the profile generatoralso stores the date, time, recipients of the message, and otherinformation derived from the message. Thus, the message info can now beassociated with the URLs.

In one embodiment, when the user selects an email from a person in anemail program (e.g., Outlook), a profile presenter can display thatperson's profile, in a manner discussed above. The profile presenter canfurther present an ordered list of links that the user has exchangedwith the person (to and from).

In one embodiment, the links in the list are ordered by date. The usermay filter the list of links via a text search, and also see whatmessage they came from. In one embodiment, the URLs in the list arede-duplicated. Thus, each unique link is shown in the list only once. Inone embodiment, from each link the user can click to view the containingmessage, open the link, or copy the link, as illustrated in FIG. 7(discussed below).

In one embodiment, when the user submits a search to the profilepresenter (e.g., searching a keyword), the profile presenter first findsany messages (e.g., based on headers, bodies, people) that areassociated with that keyword (in a way as discussed above). The profilepresenter can then display URLs that were included in the messages thatare in the search result. The user does not have to type text thatmatches the actual link, just text that would match for the message thatcontains that link.

FIG. 4 shows an example where the user types in “frank” in the searchbox 401. In FIG. 4 the profile presenter lists in the “People” panel 403a set of persons that match the keyword “frank”, in the “Message” panel405 a set of email messages that contain the keyword “frank”, in the“Appointment” panel 407 a set of appointments that match the keyword“frank”, and in the “Tasks” panel 408 a set of scheduled tasks thatmatch the keyword “frank”. In FIG. 4, the profile presenter provides inthe “Links” panel a set of links found in the messages, appointments andtasks presented in the corresponding panels 405, 407, and 408.

FIG. 5 shows an example where the user selects the profile of “FrankCort” from the “People” panel 403. In FIG. 5, when the tab 411 isselected, an ordered list of URLs is displayed. The user may enterkeywords in the filter box 413 to filter the list of URLs displayed inpanel 415.

In one embodiment, the URLs in the list are ordered based on the date ofthe email that contains the URLs (links). In the cases of multipleemails containing the same link, the date of the most recent email iscorrelated with the link; and all other instances of the link arehidden.

In one embodiment, when viewing a person's profile and filtering thelist of links, the filtering is based on the words in the linksthemselves.

In FIG. 5, when the user causes the cursor to hover over a link, furtherinformation about the link is displayed in a dynamic panel 421, asillustrated in FIG. 6; when the user right clicks a link, a menu panel423 is displayed to allow the user to select an operation, such as openthe link, open the email that contains the link, copy the link, asillustrated in FIG. 7.

Phone Number Recognition

In one embodiment, the profile generator has an improved capability torecognize phone numbers in the messages and correctly associate thephone numbers with people identified for the person profiles.

In one embodiment, the profile generator uses first regular expressionsto identify candidates for phone numbers and then use second regularexpressions to determine whether these candidates are actually dataother than phone numbers.

For example, the profile generator may use a regular expression toidentify strings that are numbers separated by dots (e.g.,415.425.5555). The profile generator then determines whether thecandidate is more appropriately to be recognized as an IP address (e.g.,127.0.1.214).

In one embodiment, the profile generator is configured to recognizephone numbers that have predetermined characters that separate differentparts of the telephone numbers, such as dots, dashes, spaces, etc. Forexample, the profile generator is configured to find phone numbers withdots in them, like 415.218.2322 and configured to tell IP addresses,such as 207.104.128.4 and not to display an IP address as a phonenumber. In one embodiment, after a string is identified as a candidatefor a recognized phone number (e.g., identified via a first regularexpression), the profile generator determines whether the string is anIP address (e.g., via matching against a second regular expression). Forexample, a regular expression can be used to check whether the string ofa “potential phone number” has the following pattern: 1 to 3 digits,followed by a dot, followed by 1 to 3 digits, followed by a dot,followed by 1 to 3 digits. In some embodiments, the profile generatormay be configured to check whether the string is further followed by adot and 1-3 digits. In some embodiments, the profile generator mayfurther checks for whether each of the parts separated by dots is anoctet having a value between 0 and 255. When the “potential phonenumber” matches the pattern(s) for an IP address, the “potential phonenumber” is not accepted as a phone number.

In one embodiment, a “potential phone number” is checked against thepatterns for IPv4 addresses. In some embodiments, a “potential phonenumber” is further checked against the patterns for IPv6 addresses.

Similarly, phone number candidates may be checked against thepossibility that the candidates actually represent data and timecombinations. This improves the accuracy of phone number recognition.For example, once the profile generator has found a potential phonenumber, the profile generator checks the potential phone number againsta regular expression for a date and time combination to see whether itis an instant of date and time. In one embodiment, to check for datetime combinations, the profile generator checks for the followingpattern: 4 digits, followed by a dash or forward slash (/), followed by1 or 2 digits, followed by a dash or slash, followed by one or morewhitespace characters (tab, space, etc.), followed by 1 or 2 digitsfollowed by a colon, followed by two digits, followed by a word boundaryor nothing. In some embodiments, the profile generator is configured tocheck whether the “potential phone number” as found in a message is partof a string that represents a date and time combination to avoidpresenting date and time as a phone number.

In one embodiment, the profile generates is configured to find the rightowner of the phone number. For example, the profile generator may checkthe words preceding the potential phone number and/or following thepotential phone number to determine whether these words indicate thatthe candidate is not a phone number, or not a phone number of a personidentified in the message (e.g., sender or recipient). For example, theprofile generator may check the words to the left and right of a phonenumber and look for words likehis/her/they/them/conference/dial-in/dialin/ip/'s to determine that thephone number most likely does not belong to the person who sent theemail. This helps eliminate the problem of matching up contact personswith the wrong number.

In one embodiment, the profile presenter looks for punctuation aroundphone numbers to find groupings of words and numbers to determine thetype of number (fax, cell, etc.) and the owner.

For example, once the profile generator finds a potential phone number,the profile generator walk from the beginning of the phone number left,using a regular expression to find words that are on the current lineand/or a previous line (e.g., separated by new line and/or carriagereturn), looking for words that are ended in a colon (e.g., on thepreceding line). In one example, the message contains the followingstrings of words.

“My phone number is:

415 555 1212”

The profile generator detects the “colon” on the left of the phonenumber and thus identifies these words on the left of the phone number(e.g., “My” “phone” “number” “is”) to check for indication of the ownerof the phone number (and/or the type of the phone number). The profilegenerator may check these words for bad matches. For example, if theprofile generator see “his number is” (e.g., by matching to thepredetermined word “his”) or “Bob's number is” (e.g., by matching to theoccurrence of “‘s”), the profile generator may discard the phone number,since the owner of the phone number is not the sender of the message. Inone embodiment, the profile generator marches a number of predeterminedwords to the left of the “potential phone number” in the message againsta set of predetermine words, such as “he”, “she”, “her”, “him”, “his”,“her”, “they”, “them”, “their”, “its”, “conference”, “pin”, “dial-in”,“dialin”, “s”, “version”, “ip”, etc. When one of the words preceding the“potential phone number” marches to one of the predetermined words, the“potential phone number” is not taken as a phone number of the sender ofthe message.

In one embodiment, the profile generator also checks the words to theleft and/or right of the “potential phone number” for indication of thetype of the phone number. For example, the profile generator may checkfor words like “f”, “fax”, “efax”, “c”, “cell”, “cellular”, “home”,“office”, etc. to determine the type of the phone number (e.g., cell,fax, home, office, or main). In one embodiment, the profile generator isconfigured to give the “main” category a low priority. That is, if theprofile generator sees a word matching “main” type and another wordmatching “home” type, the profile generator will mark the phone as“home”.

In one example, the message contains a fragment of “425-555-1212(office), 425-555-5656 (cel”. When checking the second number(425-555-5656), the profile generator detects the comma (punctuation) onthe left, and thus stop checking more words on the left, and continuesto check the words on the right to find the “type” of the phone number(home, office, main, cell, etc.) In one embodiment, the profilegenerator is configured to test the words on the left first, and thentest the words on the right to determine the type and to determinewhether the phone number should be discarded.

Contact Network

In one embodiment, the profile generator identifies the personsassociated with a sender (or a recipient) of a message not only based onthe headers (e.g., To, CC, BCC fields of an email), but also the messagebodies which may contain identifications of the associated persons, suchas names, email addresses, etc. The persons referred to in the headerand/or the body of the messages are considered the contact network ofthe sender (or recipient). The contact network can be presented as partof the profile of the sender (or recipient), as illustrated in FIG. 1B,panel 154. The person in the contact network can be sorted according tothe frequency that these people (and their associated email addresses)appeared in messages common to one another.

For example, the profile generator can scan message bodies to find emailaddresses. So if someone forwards an email to the user with the list ofemail addresses in the body of the forwarded message, those emailaddresses can be recognized as a part of the sender's network in theuser's view of sender's profile.

The apparatus, methods, flow diagrams, and structure block diagramsdescribed in this patent document may be implemented in computerprocessing systems including program code comprising programinstructions that are executable by the computer processing system. Someimplementations may also be used. Additionally, the flow diagrams andstructure block diagrams described in this patent document, whichdescribe particular methods and/or corresponding acts in support ofsteps and corresponding functions in support of disclosed structuralmeans, may also be utilized to implement corresponding softwarestructures and algorithms, and equivalents thereof.

This written description sets forth the best mode of the invention andprovides examples to describe the invention and to enable a person ofordinary skill in the art to make and use the invention. This writtendescription does not limit the invention to the precise terms set forth.Thus, while the invention has been described in detail with reference tothe examples set forth above, those of ordinary skill in the art mayeffect alterations, modifications and variations to the examples withoutdeparting from the scope of the invention.

In the foregoing specification, the disclosure has been described withreference to specific exemplary embodiments thereof. It will be evidentthat various modifications may be made thereto without departing fromthe broader spirit and scope as set forth in the following claims. Thespecification and drawings are, accordingly, to be regarded in anillustrative sense rather than a restrictive sense.

1. A computer-implemented method for presenting information to a user ofa user device, the method comprising: collecting, via a computingdevice, data relating to a plurality of communications sent to or fromthe user, the plurality of communications including a first person and asecond person, and each respective communication including a respectivelink of a plurality of links; generating, via the computing device, aplurality of personal profiles from the collected data, the profilescomprising a first personal profile of the first person including afirst link of the plurality of links; and presenting the first personalprofile to the user, comprising displaying the first link in a userinterface on the user device.
 2. The method of claim 1, wherein theplurality of communications is a plurality of emails, the respectivecommunication is a respective email, and the respective link for each ofthe plurality of emails is collected from a body or a subject of therespective email.
 3. The method of claim 1, wherein the respective linkis a uniform resource locator.
 4. The method of claim 1, wherein thegenerating comprises storing a date, a time, and at least one recipientfor each respective communication.
 5. The method of claim 1, wherein theuser interface is for an email program running on the user device, andthe presenting is in response to the user selecting an email beingdisplayed in the user interface.
 6. The method of claim 1, wherein thepresenting further comprises presenting a list of links, including thefirst link, that the user has exchanged with the first person, the listof links ordered by date.
 7. The method of claim 1, further comprisingreceiving a search query from the user, presenting a second personalprofile of the plurality of profiles for the second person in responseto the search query, and displaying a list of links associated with thesecond personal profile, wherein the list of links has been exchanged bythe user with the second person.
 8. The method of claim 1, wherein theplurality of personal profiles is stored in a repository, the methodfurther comprising receiving a search query comprising a keyword fromthe user, finding emails in the repository that are associated with thekeyword, and displaying in the user interface links included in theemails associated with the keyword.
 9. The method of claim 8, whereinthe keyword is text, and the text does not match any text of the linksdisplayed in the user interface.
 10. The method of claim 1, furthercomprising: collecting data about the second person from the pluralityof communications in order to create a second personal profile for thesecond person, comprising: identifying a first string in one of theplurality of communications as a candidate for a phone number, anddetermining whether the first string is an IP address; and displaying,in the user interface, the phone number as being associated with thesecond personal profile.
 11. The method of claim 10, wherein thecollecting data to create the second personal profile further comprisesidentifying a second string as a candidate for a phone number, anddetermining whether the second string is a combination of date and time.12. The method of claim 10, wherein the collecting data to create thesecond personal profile further comprises identifying a third string asa candidate for a phone number, and determining whether words precedingthe third string contain one or more words indicating that the thirdstring is not a phone number.
 13. The method of claim 10, wherein thecollecting data comprises collecting data about a third person from aplurality of emails to or from the third person, and the plurality ofpersonal profiles includes a third personal profile created using thecollected data about the third person, the method further comprising:identifying a set of persons related to the third person from bodies ofthe plurality of emails; and displaying, in the user interface, the setof persons as being associated with the third personal profile.
 14. Themethod of claim 13, wherein the identifying includes identifying emailaddresses inside the bodies.
 15. The method of claim 1, wherein thecommunications are emails.
 16. A non-transitory computer-readablestorage medium for tangibly storing thereon computer readableinstructions, the instructions causing a computer to perform a method,the method comprising: collecting links from bodies or subjects of aplurality of emails sent to or from the user; creating a plurality ofpersonal profiles including the collected links, each of the pluralityof personal profiles corresponding to a sender or recipient of one ofthe plurality of emails, and the plurality of personal profilesincluding a first profile for a first sender of one of the plurality ofemails; storing the plurality of personal profiles in a repositoryincluding an association between each of the collected links and arespective email of the plurality of emails; storing, in the repository,a date, a time, and at least one sender or recipient for each of theplurality of emails; and displaying, associated with the first profilefor the first sender, a list of links from the collected links that havebeen exchanged between the first sender and the user.
 17. The storagemedium of claim 16, further comprising receiving from the user a searchquery with a keyword, and displaying an email of the plurality of emailsthat is associated with the keyword.
 18. The storage medium of claim 16,wherein the list of links is ordered by date.
 19. A system, comprising:memory storing a plurality of personal profiles; a computing devicecoupled to access the memory, the computing device configured to performa method comprising: collecting a plurality of links from bodies orsubjects in a plurality of emails sent to or from a user; generating theplurality of personal profiles using data, including and in addition tothe plurality of links, collected from the plurality of emails;associating, in a repository, each of the plurality of links with arespective email of the plurality of emails and further with arespective personal profile of the plurality of profiles; and displayinga personal profile of a sender or a recipient of one of the plurality ofemails, comprising displaying a subset of the plurality of linksassociated with the personal profile.
 20. The system of claim 19,further comprising receiving a selection by the user of a selected linkof the subset of links, and displaying to the user at least one of theplurality of emails containing the selected link.